using System;

namespace Crainiate.Data.Persistence
{
    public class PersistenceException : System.Exception
    {
		public PersistenceException(string message) : base(message)
		{}
    }

    public class TableException : System.Exception
    {
        public TableException(string message): base(message)
        {}
    }	

	public class ConditionException : System.Exception 
	{
		public ConditionException(string message) : base(message)
		{}
	}	

	public class ConditionsException : System.Exception 
	{
		public ConditionsException(string message) : base(message)
		{}
	}

	public class SortException : System.Exception 
	{
		public SortException(string message) : base(message)
		{}
	}

	public class QueryException: System.Exception 
	{
		public QueryException(string message) : base(message)
		{}
	}

    public class ViewException : System.Exception
    {
        public ViewException(string message): base(message)
        { }
    }

	public class DuplicateKeyException: System.Exception 
	{
		public DuplicateKeyException(string message) : base(message)
		{}
	}

	public class RecordNotFoundException: System.Exception 
	{
		public RecordNotFoundException(string message) : base(message)
		{}
	}

    public class ReferenceException : System.Exception
    {
        public ReferenceException(string message): base(message)
        { }
        public ReferenceException(string message, Exception innerException): base(message, innerException)
        { }
    }

    public class ConcurrencyException : System.Exception
    {
        public ConcurrencyException(string message) : base(message)
        {}
    }
}
